﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Hydra.UrlMon.Enumerations
{
    [Flags]
    public enum StorageMediumType : int
    { 
        /// <summary> No data is being passed. </summary>
        NULL                      = 0,
        /// <summary> The storage medium is a global memory handle (HGLOBAL). Allocate the global handle with the GMEM_SHARE flag. If the STGMEDIUM punkForRelease member is NULL, the destination process should use GlobalFree to release the memory. </summary>
        HGLOBAL                   = 1,
        /// <summary> The storage medium is a disk file identified by a path. If the STGMEDIUM punkForRelease member is NULL, the destination process should use OpenFile to delete the file. </summary>
        FILE                      = 2,
        /// <summary> The storage medium is a stream object identified by an IStream pointer. Use ISequentialStream::Read to read the data. If the STGMEDIUM punkForRelease member is not NULL, the destination process should use IStream::Release to release the stream component. </summary>
        ISTREAM                   = 4,
        /// <summary> The storage medium is a storage component identified by an IStorage pointer. The data is in the streams and storages contained by this IStorage instance. If the STGMEDIUM punkForRelease member is not NULL, the destination process should use IStorage::Release to release the storage component. </summary>
        ISTORAGE                  = 8,
        /// <summary> The storage medium is a GDI component (HBITMAP). If the STGMEDIUM punkForRelease member is NULL, the destination process should use DeleteObject to delete the bitmap. </summary>
        GDI                       = 16,
        /// <summary> The storage medium is a metafile (HMETAFILE). Use the Windows or WIN32 functions to access the metafile's data. If the STGMEDIUM punkForRelease member is NULL, the destination process should use DeleteMetaFile to delete the bitmap. </summary>
        MFPICT                    = 32,
        /// <summary> The storage medium is an enhanced metafile. If the STGMEDIUM punkForRelease member is NULL, the destination process should use DeleteEnhMetaFile to delete the bitmap. </summary>
        ENHMF                     = 64
    }  
}
